package com.jwsoft.manager.core.integration;

import com.github.pagehelper.PageInfo;
import com.jwsoft.manager.common.vo.eduClass.EduClassCreateVO;
import com.jwsoft.manager.common.vo.eduClass.EduClassVO;
import com.jwsoft.manager.common.vo.eduClass.EduClassKeyVO;
import com.jwsoft.manager.common.vo.eduClass.EduClassQueryVO;
import com.jwsoft.manager.common.vo.eduClassStudent.EduClassStudentVO;
import com.jwsoft.manager.core.dao.model.EduClassStudent;

import java.util.List;

/**
 * 分班信息管理业务本地接口
 *
 * @author chenzh
 * @since 2023-08-21
 */
public interface EduClassIntegration {
    /**
     * 分页查询
     */
    PageInfo<EduClassVO> getList(EduClassQueryVO vo);

    /**
     * 根据主键查询详情
     */
    EduClassVO getById(EduClassKeyVO vo);

    /**
     * 保存前统一校验
     */
    void checkSave(EduClassVO vo);

    /**
     * 新增
     */
    EduClassVO add(EduClassVO vo);

    /**
     * 修改
     */
    EduClassVO edit(EduClassVO vo);

    /**
     * 根据主键删除
     */
    void del(EduClassKeyVO vo);

    /**
     * 创建预分班信息
     */
    List<EduClassVO> createClass(EduClassCreateVO vo);

    /**
     * 查询是否已分班
     */
    Boolean queryClassFlag(EduClassCreateVO vo);

    /**
     * 根据学校和年度查询分班信息
     */
    List<EduClassVO> queryByYearAndSchool(EduClassQueryVO vo);

    /**
     * 设置班主任和名称
     */
    void setAdviser(EduClassVO vo);

    /**
     * 根据分班id查询学生名单
     */
    List<EduClassStudentVO> getStudentByClassId(EduClassKeyVO vo);
}
